#include <iostream>

// 优先调用普通函数
// 显式调用就用模板函数

// 普通函数支持隐式转换
// 模板函数的类型必须严格匹配
template <typename T,typename T2>
T add(T a, T2 b)
{
    std::cout << "模板函数\n";
    return a + b;
}

int add(int a, int b)
{
    std::cout << "普通函数\n";
    return a + b;
}

int main()
{
    int c = add<int, char>(1, 'a');
    std::cout<<c;
    return 0;
}